package Gestores;

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.sql.ResultSet;
import java.sql.SQLException;

import BD.OperadorBD;
import Logica.Operador;

public class OperadorGestor {
	
	public OperadorGestor() {
		super();
	}
	
	public static Boolean altaOperador(String usuario,String pw){
			
				if(OperadorBD.registrarOperador(usuario,codPW(pw)) != -1)
					return true;
				else
					return false;
	}
	
	public static Operador login(String usuario,String pw){
		Operador operador=null;
		ResultSet resultado=null;
		
		try {
			resultado = OperadorBD.autenticar(usuario,codPW(pw));
			if (!resultado.next()){
				return null;
			}
		} catch (SQLException e) {

		}
		try {
			operador=new Operador(resultado.getInt("id"),resultado.getString("usuario"),resultado.getInt("tipo"));
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return operador;
	}
	
	public static String codPW(String pw){
			MessageDigest pwCod;
			String hash="";
			
			try {
				pwCod = MessageDigest.getInstance("MD5");
				pwCod.reset();
				pwCod.update(pw.getBytes());
				byte[] digest = pwCod.digest();
				BigInteger bigInt = new BigInteger(1,digest);
				hash = bigInt.toString(16);
				while(hash.length() < 32 )
					hash = "0"+hash;
				
			} catch (NoSuchAlgorithmException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			return hash;
	}
}
